From: Florian Müllner Date: Mon, 22 Feb 2016 16:59:05 +0000 (+0100) Subject: windowManager: Always check dimming when an attached modal opens/closes X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~974 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=4c29604e1e1a92b8dd16773fc15f7a482fd9541f;p=gnome-shell.git windowManager: Always check dimming when an attached modal opens/closes We skip window animations while the overview is shown (and the window group is hidden) to avoid unnecessary work. However when an attached modal dialog is opened or closed, this involves checking whether the parent window should be dimmed - skipping that test means that we can simply fail to dim or undim a window altogether, so do that check unconditionally. https://bugzilla.gnome.org/show_bug.cgi?id=762475 --- diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 32b8c0f6c..a36a71ffc 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -1403,6 +1403,9 @@ const WindowManager = new Lang.Class({ actor._windowType = type; })); + if (actor.meta_window.is_attached_dialog()) + this._checkDimming(actor.get_meta_window().get_transient_for()); + let types = [Meta.WindowType.NORMAL, Meta.WindowType.DIALOG, Meta.WindowType.MODAL_DIALOG]; @@ -1411,9 +1414,6 @@ const WindowManager = new Lang.Class({ return; } - if (actor.meta_window.is_attached_dialog()) - this._checkDimming(actor.get_meta_window().get_transient_for()); - switch (actor._windowType) { case Meta.WindowType.NORMAL: actor.set_pivot_point(0.5, 1.0); @@ -1496,6 +1496,9 @@ const WindowManager = new Lang.Class({ }); } + if (window.is_attached_dialog()) + this._checkDimming(window.get_transient_for(), window); + let types = [Meta.WindowType.NORMAL, Meta.WindowType.DIALOG, Meta.WindowType.MODAL_DIALOG]; @@ -1530,7 +1533,6 @@ const WindowManager = new Lang.Class({ if (window.is_attached_dialog()) { let parent = window.get_transient_for(); - this._checkDimming(parent, window); actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () { Tweener.removeTweens(actor); this._destroyWindowDone(shellwm, actor);